<?php
require_once(SERVER_ROOT . '/authenticate/' . 'Authenticator.php');
require_once(SERVER_ROOT . '/daos/' . 'EscritorioDAO.php');
require_once(SERVER_ROOT . '/daos/' . 'UsuarioDAO.php');

class EscritorioController {
	private $escritorioDAO;
	private $usuarioDAO;
	private $usuario;

	public function __construct() {
		$this->escritorioDAO = new EscritorioDAO();
		$this->usuarioDAO = new UsuarioDAO();
		$this->usuario = Authenticator::getUser();
	}

	public function getEscritorio(array $params) {

		$row = $this->escritorioDAO->findById($params['id_escritorio']);
		$gerente = $this->usuarioDAO->findById($row['id_gerente']);
		$response = array(
				$row['id_escritorio'],
				$row['nome'],
				$row['cod_escritorio'],
				$row['cod_gerente'],
				$gerente['nome'],
		);
		echo json_encode($response);
	}

	public function atualizarEscritorio(array $params) {
		$rows = $this->escritorioDAO->update($params);
		if ($rows) {
			echo "ok";
		} else {
			echo "fail";
		}
	}
	public function listAll($p) {
		$page = $p['page'];
		$limit = $p['rows'];
		$sidx = $p['sidx'];
		$sord = $p['sord'];
		$search_field = $p['searchField'];
		$search_string = $p['searchString'];
		$search_oper = $p['searchOper'];
		if (!$sidx)
			$sidx = 1;
		$count = $this->escritorioDAO->count();
		$total_pages = ($count > 0 ? ceil($count / $limit) : $total_pages = 0);
		if ($page > $total_pages)
			$page = $total_pages;
		$start = $limit * $page - $limit;
		if ($start < 0)
			$start = 0;
		if ($search_string == "") {
			$result = $this->escritorioDAO->findAll($sidx, $sord, $start, $limit);
		} else {
			$result = $this->escritorioDAO->findAllWithFilters($sidx, $sord, $start, $limit, $search_field, $search_string, $search_oper);
		}

		$response->page = $page;
		$response->total = $total_pages;
		$response->records = $count;
		for ($i = 0; $i < count($result); $i++) {
			$row = $result[$i];
			$gerente = $this->usuarioDAO->findById($row['id_gerente']);
			$response->rows[$i]['id'] = $row['id_escritorio'];
			$response->rows[$i]['cell'] = array($row['id_escritorio'], $row['nome'], $row['cod_escritorio'], $row['cod_gerente'],$gerente['nome'],'');
		}
		echo json_encode($response);
	}

	public function listByUsuario() {
		$result = $this->escritorioDAO->findAllByUsuario($this->usuario->id_usuario);
		$row = $result;
		$gerente = $this->usuarioDAO->findById($row['id_gerente']);
		$response->rows[0]['id'] = $row['id_escritorio'];
		$response->rows[0]['cell'] = array($row['id_escritorio'], $row['nome'], $row['cod_escritorio'], $row['cod_gerente'],$gerente['nome'],'');
		echo json_encode($response);
	}

}